/**
 * 
 */
package core.interfaces;

import core.descriptors.TaskDescriptor;

/**
 * Interfaccia per la definizione dei metodi principali della struttura informativa che gestisce i task tramite il TaskDescriptor
 * @author Vincenzo Merlo, Scuderi Giovanni Luca, Paolo Giuffrida
 *
 */
public interface TQueue {
    /**
     * Mette in coda il TaskDescriptor da schedulare
     * @param td TaskDescriptro da schedulare
     * @return intero di controllo, 1 se andato tutto bene ErrorCode altrimenti
     * @see Error
     */
    public int enqueue(TaskDescriptor td);
    /**
     * Ritorna il TaskDescriptor pronto per essere schedulato
     * @return TaskDescriptor da schedualare
     */
    public TaskDescriptor dequeue();
}
